Layout control for image output

ABSTRACT

The object of the invention is to easily and simply output a document including an image in a desired layout.  
     A script generation device  10  generates a script used to control a layout of a printer  20,  and transfers the generated script to the printer  20.  The script includes multiple drawing control commands that individually adjust output positions with regard to a plurality of images to be output in a preset output range. The sequence of arrangement of the multiple drawing control commands specifies the overlapping state of the plurality of images. The script of this construction enables the user to readily define and change the overlapping state and thereby attain a desired layout.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to a technique of simply and easily outputting a document including an image in an arbitrary layout.

[0003] 2. Description of the Related Art

[0004] There are a variety of known editing programs for editing and printing documents with images attached thereto. Some of the editing programs set image data provided by the user in a specific template and thereby complete a document.

[0005] Such prior art editing programs, however, do not enable the user to create the template freely and readily. In the case of printing a document in a desired layout, the user should create the document without using the template. This is significantly inconvenient. Time and labor consuming work is required especially in the case of outputting multiple documents with replacement of only images in a fixed layout. This problem is not restricted to printing, but is common to output of documents including images in any form.

SUMMARY OF THE INVENTION

[0006] The object of the present invention is thus to provide a technique of simply and readily outputting a document including an image in a desired layout.

[0007] In order to attain at least part of the above and the other related objects, the present invention is directed to a layout control program used for controlling a layout of image output in an image output device. The layout control program has: an output range defining function that defines a physical output range on an output medium, in which an image is output; and a layout specifying function that specifies a layout of the image in the defined output range. The layout specifying function includes multiple drawing control commands to individually adjust the output positions of multiple images, which are to be output in the defined output range. The sequence of arrangement of the multiple drawing control commands specifies the overlapping state of the multiple images. The drawing control commands are individually provided for the respective images. Required pieces of information for outputting the image, which include information for adjusting the output position, are integrated in each of the multiple drawing control commands.

[0008] The user creates the layout control program and transmits the layout control program to the image output device, thus ensuring easy output in a desired layout. In this layout control program, one drawing control command corresponds to one image, and the simple arrangement of the drawing control commands defines the overlapping state of the images. The required pieces of information for outputting each image are integrated in a single command. This arrangement enables the user to easily define and change the overlapping state and attain a desired layout. The layout control program provides a sort of template by specifying the layout of image output in advance.

[0009] In the present invention, the image output is, for example, printing or display. The physical output range represents, for example, the size of a printing sheet in the case of printing or the size of a display or a screen in the case of display. The layout control program may adopt any of diverse formats. One highly convenient format is a script file in which multiple commands are stored as text data.

[0010] In one preferable application of the layout control program of the invention, each of the multiple drawing control commands includes, as parameters, image file specification information specifying an image file to be output and a validity index representing validity of the image file specification information.

[0011] This arrangement enables a part with a fixed image file and a part with an arbitrary image file inserted therein at the time of output to be readily defined in the template specified according to the layout control program. For example, the fixed image file is effectively applicable for a background used in the template. The procedure specifies a fixed image file and sets the validity index to make the specification of the fixed image file valid. In the case of inserting an arbitrary image file at the time of output, the validity index is set to make the specification of the fixed image file invalid. In this case, the specification of the image file may be omitted. The validity index may be used to make the specification of the fixed image file invalid and also function as an index for specifying an image to be inserted.

[0012] In another preferable application of the layout control program of the invention, each of the multiple drawing control commands includes, as a parameter, coordinates of two points located at opposing corners of an oblong output frame, which are used to define the output frame for adjusting an output position of the image. The oblong may be rectangular or square.

[0013] This arrangement ensures easy definition of the output frame for the image. The arrangement of separately defining the output frame from the image ensures output in desired dimensions without specifically providing a trimmed image. One of the two points for defining the output frame may be unfixed, so that the output frame fitting in with the size of the image is automatically set. For example, the drawing control command may include, as parameters, image file specification information specifying an image file to be output, coordinates of one point in an oblong output frame for adjusting an output position of the image, and information for setting dimensions of the output frame to be fit in with dimensions of the image. The output frame may be polygonal, instead of oblong. In the case of a polygonal output frame, a specified number of points should be set to unequivocally define the output frame according to its shape.

[0014] In this application of defining the output frame, each of the multiple drawing control commands may include, as a parameter, information that is used to identify a method of fitting the image to the output frame. The method of fitting the image may resize or trim the image when the size of the image is not coincident with the size of the output frame. This parameter ensures a desired output even when the image is provided independently of the size of the output frame.

[0015] In the application of defining the output frame, each of the multiple drawing control commands may also include, as a parameter, information that is used to specify a relative positional relationship between the image and the output frame in a resulting output. The relative positional relationship may be a positional relation between the center position of the output frame and the center position of the image. This parameter also effectively functions to ensure a desired output.

[0016] Regardless of the specification of the output frame, in the layout control program of the present invention, each of the multiple drawing control commands may include, as a parameter, information that is used to regulate a rotating state of the image in a resulting output. This parameter allows for diverse layouts.

[0017] The layout control program of the present invention may include various pieces of information for regulating deformation of the output image, in addition to the parameters discussed above. Examples of such deformation parameters include a parameter ‘Shear’ for changing an oblong image into a parallelogram and a parameter ‘Reflect’ for inverting an image to an arbitrary axis in an axisymmetrical manner.

[0018] In one preferable embodiment, the layout control program of the present invention further includes one or multiple letter string control commands that are arranged in a predetermined sequence and are used to set an output form of one or multiple letter strings. Like the drawing control commands, the sequence of arrangement of the letter string control commands specifies the overlapping state of the letter strings. The letter strings to be output may be specified arbitrarily by the user or may be information included in the image file. The image file including information to be output as letters is, for example, an Exif format. In order to use such an image file, the letter string control command includes, as parameters, image file specification information specifying the image file and format specification information specifying an output format of the information included in the image file. This arrangement enables information intrinsic to a specified image, for example, the date of creation of the image file, to be output as a letter string.

[0019] In the case of application of the layout control program of the invention for printing, the output range defining function may have a size specification command that is used to specify dimensions of a printing sheet as the output medium; and a margin setting command that is used to set margins on the printing sheet. It is preferable that a negative value is allowable for the margin setting command. This arrangement permits definition of the output range protruding over the printing sheet and thereby readily specifies printing with no margin with regard to at least one side of the printing sheet. The setting of a negative value ensures a stable, desired output. The output range with no margin may be actualized by setting the value ‘0’ to the margin. There is, however, still a possibility that a small margin is left due to a positional displacement of the printing sheet at the time of printing. The setting of a negative value, on the other hand, ensures stable rimless printing even under the condition of the positional displacement of the printing sheet. The setting of a negative value is not the only way of defining the output range including an extra area out of the printing sheet. Another procedure sets in advance the origin of a coordinate system, which is applied to define the output range, outside the printing sheet.

[0020] The output control program of the invention may be constructed by means of a text editor, but is preferably constructed by a file generation device that generates a file including description of the layout control program. The file generation device inputs a specification regarding a layout of image output in response to a user's operation, and provides the user with a resulting image laid out according to the specification in the form of printing or display. The file generation device generates the file in which the layout control program is described, in response to the user's input of a settlement instruction of the layout. The GUI (graphical user interface) is preferably used for the specification of the layout and the settlement instruction. This file generation device enables the user to set the layout while checking the actual output state.

[0021] The present invention is also directed to an image output device that outputs an image in a layout according to the layout control program discussed above. The image output device inputs the layout control program and image data specified by the drawing control commands included in the layout control program, arranges the image data in an overlapping relation corresponding to the arrangement of the drawing control commands, and outputs a resulting image according to the image data thus arranged. The positions and the sizes of the images are regulated, based on a diversity of parameters included in the drawing control commands. The image output device may be constructed as a printing device, a display device, or any other suitable form.

[0022] In one preferable embodiment, the image output device of the present invention is capable of treating image data that includes a transparency parameter to regulate the state of transparency in multiple stages. In the case of overlapping such image data with another image data, a specified transparency state is actualized by setting tone values in an image overlap area according to a predetermined operational expression including the transparency parameter and the tone values of both the image data. The regulation of the transparency state allows for a diversity of layouts and desirably enhances the convenience of the layout control program and the image output device.

[0023] The technique of the present invention is actualized by a diversity of other applications, for example, a computer readable recording medium in which the layout control program discussed above is recorded, a file generation method that generates a file in which the layout control program is described, a method of controlling an image output device according to the layout control program, and an image output method. Other applications include computer programs that attain the functions of the file generation device or the image output device described above, as well as recording media in which such computer programs are recorded.

[0024] Available examples of the recording media include flexible disks, CD-ROMs, magneto-optic discs, IC cards, ROM cartridges, punched cards, prints with barcodes or other codes printed thereon, internal storage devices (memories like a RAM and a ROM) and external storage devices of the computer, and a variety of other computer readable media.

BRIEF DESCRIPTION OF THE DRAWINGS

[0025]FIG. 1 schematically illustrates the construction of a printing system in one embodiment;

[0026]FIG. 2 shows definition of a layout in the embodiment;

[0027]FIG. 3 shows rules for fitting an image to a photo frame;

[0028]FIG. 4 shows relative positional relations between the photo frame and the image;

[0029]FIG. 5 is a flowchart showing a script generation process;

[0030]FIG. 6 shows an example of description of a script in the embodiment;

[0031]FIGS. 7A and 7B show description of a header section;

[0032]FIGS. 8A through 8D show description of parameters included in the header section;

[0033]FIGS. 9A through 9C show description of parameters including in the header section;

[0034]FIGS. 10A through 10C show description of parameters included in the header section;

[0035]FIGS. 11A and 11B show description of parameters included in the header section;

[0036]FIG. 12 shows description of a parameter included in the header section;

[0037]FIG. 13 shows description of a parameter included in the header section;

[0038]FIGS. 14A and 14B show description of parameters included in the header section;

[0039]FIGS. 15A and 15B show description of a page section;

[0040]FIG. 16 shows description of a parameter DrawPicture;

[0041]FIG. 17 shows description of a parameter DrawLine;

[0042]FIG. 18 shows description of a parameter DrawString;

[0043]FIG. 19 shows macro variables; and

[0044]FIG. 20 is a flowchart showing a printing process.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0045] One mode of carrying out the present invention is discussed below in the following sequence:

[0046] A. System Construction

[0047] B. Definition of Layout

[0048] C. Script Generation Process

[0049] D. Script Description Method

[0050] E. Printing Process

[0051] A. System Construction

[0052]FIG. 1 schematically illustrates the construction of a printing system in one embodiment. The printing system includes a script generation device 10 that generates a layout control program (hereafter simply referred to as ‘script’ in the description of the embodiment), and a printer 20. The script generation device 10 is arranged by installing an application program for generating the script in a general-purpose personal computer. The personal computer reads the application program from a CD-ROM or another suitable recording medium or fetches the application program via the Internet or another network and installs the obtained application program. The functions as the script generation device 10 are attained by software in this embodiment, but may be actualized by an exclusive hardware structure.

[0053] The script generation device 10 has the function of generating the script to control the layout of printing by means of the printer 20. Functional blocks of the script generation device 10 are shown in the drawing. These functional blocks are constructed by a software configuration of the application program. In the script generation device 10, the respective functional blocks work under control of a main control module 15.

[0054] A command input module 11 receives an input command in response to a user's operation of an input device, such as a keyboard and a mouse included in the personal computer. The command includes a layout definition command and a layout settlement command. The layout definition command specifies a selected size of a printing sheet and a layout of images and letter strings in the printing sheet.

[0055] In response to input of the layout definition command, the main control module 15 generates a resulting image on which the specified layout is reflected, and transmits the generated image to a display module 12. The display module causes the transmitted image to be displayed on an internal display. In the case where the input command specifies an image file to be laid out, the main control module 15 extracts the specified image file from an image file storage module 14.

[0056] In response to input of the layout settlement command, the main control module 15 sends information on the settled layout to a file generation module 13. The file generation module 13 generates a script file, in which the script is recorded. The contents of the script will be discussed later. The script generation device 10 has a drive for writing in a memory card MC1. The resulting script file is recorded into the memory card MC1 by means of this drive.

[0057] The printer 20 of the embodiment is a stand alone printer that has a built-in printer driver and is capable of printing without connection with a computer. The printer 20 has a slot for reading a memory card, and a control panel that is manipulated for simple operations. The printer 20 has a control unit, which is constructed as a microcomputer including a CPU and memories. Functional blocks of the printer 20 are constructed by software to interpret the script and carry out printing in the specified layout.

[0058] These functional blocks are also shown in the drawing. In the printer 20, the respective functional blocks work under control of an output control module 25. A script input module 21 inputs the script recorded in the memory card MC1. The script input module 21 may have a function of storing the input script. The input script is transmitted to the output control module 25 at the time of executing a printing operation.

[0059] An image file input module 22 inputs an image file to be printed from a memory card MC2. The script of the embodiment may specify an image to be printed in advance, or may otherwise specify the image to be printed at the time of printing. The image file input module 22 is mainly used to input the image specified at the time of printing.

[0060] The output control module 25 reads the image file and creates an image to be printed in the specified layout, based on the script. A drawing memory 23 is utilized for creation of the image. A resulting image completed in the drawing memory 23 is transmitted to a printing module 24 to be printed. The printing module 24 has the functions as the printer driver.

[0061]FIG. 1 shows the system utilizing the stand alone printer 20. The output device is, however, not restricted to this printer, but may be a printer connecting with the computer. In this case, at least part of the functional blocks shown in FIG. 1 is constructed by a software configuration in the computer. The output device is not restricted to the printer but may be a display device, such as a display or a projector connecting with the computer.

[0062] B. Definition of Layout

[0063]FIG. 2 shows definition of the layout in the embodiment. The following description regards a case of output to the printer 20. The definition of the layout mainly includes definition of an output range and specification of an image layout in the output range.

[0064] In the case of the printer 20, the definition of the output range means specification of a physical range for image output, which includes size of a printing sheet and margins. A top margin and a left margin on a printing sheet P are shown in the drawing. A bottom margin and a right margin are set in a similar manner, although they are omitted from the illustration for simplicity of the drawing. A white area other than the margins represents a printing range. In the case of output to a display device, instead of the printer, the output range is defined according to the size of a display or a screen, in place of the printing sheet.

[0065] In this embodiment, each margin may take a negative value. Setting the negative value to the margin means that the printing range protrudes over the printing sheet P. Such setting allows printing without margins, that is, ‘rimless printing’. If there is no positional displacement of the printing sheet in the printer 20, setting a value ‘0’ to the margin attains the rimless printing. In the actual state, however, there is a possibility that a small margin is left due to the positional displacement of the printing sheet. The procedure of this embodiment sets a negative value to the margin and thereby prevents any small margin from being left due to the positional displacement of the printing sheet, thus ensuring stable rimless printing.

[0066] The image layout is defined by a photo frame FR. The photo frame FR is set by drawing an oblong frame in the printing range displayed on the script generation device 10 with a mouse. The position of the oblong frame is specified according to coordinates on x and y axes shown in the drawing. An image file to be attached to the photo frame FR is set, in addition to the settings of the position and the size of the photo frame FR. The photo frame FR is oneto-one mapped to an image PIC1. As mentioned previously, the image file may be specified in advance or may be specified occasionally at the time of printing. The illustrated example shows the case where the image PIC1 is specified relative to the photo frame FR. A resulting print includes the image PIC1 set in the photo frame FR.

[0067] The image layout may be defined in an overlapping state of multiple images. In the illustrated example, an image PIC2 is superimposed on the image PIC1. The image PIC2 has a blank area defined as ‘transparent’. The format of such an image will be discussed later. As described above, a photo frame is one-to-one mapped to an image. Two photo frames respectively corresponding to the two images PIC1 and PIC2 are arranged at an identical position. In the case of the overlapped layout of multiple images, the image PIC1 is brimmed by the image PIC2 in a resulting print. For convenience of explanation, in the illustrated example, the images PIC1 and PIC2 of an identical size are overlapped with each other at an identical location. The two images may be arranged in a partly overlapping manner.

[0068] The definition of the image layout according to the photo frame advantageously ensures flexible replacement of images at the time of printing and readily attains a variety of layouts irrespective of the size of the image to be inserted.

[0069]FIG. 3 shows rules for fitting the image to the photo frame. In this example, the image PIC is set in the photo frame FR. The size and the aspect ratio of the image PIC are different from those of the photo frame FR. In this case, the procedure of the embodiment changes the size and the aspect ratio of the image PIC to fit the size and the aspect ratio of the photo frame FR. Three rules FitOutside, FitAll, and FitWithin are applied for the change.

[0070] The rule FitOutside changes the size of the image PIC to set the image PIC over the whole surface of the photo frame FR, while maintaining the aspect ratio of the image PIC. Namely the X direction and the Y direction have an identical magnification. In the case where the aspect ratio of the image PIC is different from the aspect ratio of the photo frame FR, either the left and right ends or the upper and lower ends of the image PIC are cut before the layout.

[0071] The rule FitWithin changes the size of the image PIC to set the whole image PIC in the photo frame FR, while maintaining the aspect ratio of the image PIC. In the case where the aspect ratio of the image PIC is different from the aspect ratio of the photo frame FR, margins are set on either of the left and right sides or the upper and lower sides of the image PIC.

[0072] The rule FitAll changes the size of the image PIC to make the size of the image PIC coincident with the size of the photo frame FR. In the case where the aspect ratio of the image PIC is different from the aspect ratio of the photo frame FR, the x direction and the y direction have different magnifications. The image PIC is thus magnified either in the horizontal direction or in the vertical direction.

[0073] The rules FitOutside and FitWithin give some degree of freedom to the positional relationship between the photo frame FR and the resulting processed image PIC. The procedure of the embodiment allows the layout of the photo frame and the image to be selected among nine settings

[0074]FIG. 4 shows relative positional relations between the photo frame and the image. Each hatched portion represents the image, and each rectangle included in the hatched portion represents the photo frame. For the better understanding of the relative positional relation, the size of the image is greater than the size of the photo frame in this embodiment. In the case of changing the size of the image according to the rule FitOutside and according to the rule FitWithin, the nine settings for the positional relationship may include the relative positional relations that have practically the same printing results.

[0075] The positional relation between the photo frame and the image is defined by reference points set in the photo frame and the image. The output layout of the photo frame and the image is determined to make the two reference points coincident with each other. In this embodiment, combinations of three positions for the reference point in the vertical direction, ‘Top’, ‘Center’, and ‘Bottom’ with three positions for the reference point in the horizontal direction, ‘Left’, ‘Center’, and ‘Right’ give the total of nine settings for the positional relationship. For example, in the case of positional relation LT (Left-Top), the reference points are set at the upper left vertexes of the photo frame and the image. For the other eight settings, the reference point is similarly defined by the combination of the position in the vertical direction with the position in the horizontal direction. In this embodiment, the three positions are specified for the reference point both in the vertical direction and in the horizontal direction. Any greater number of positions may be specified for the reference point.

[0076] C. Script Generation Process

[0077]FIG. 5 is a flowchart showing a script generation process, which is executed by the script generation device 10. The script generation device 10 continually receives the user's input commands and displays the image with reflection of the input commands until settlement of a final layout (steps S10 through S14). The input commands are used to set the layout shown in FIGS. 2 through 4, and include those for the settings of the printing range, the settings of the photo frame, the settings of the image to be arranged in the photo frame, the settings of the fitting rule, and the settings with regard to the relative positional relationship between the photo frame and the image. Letter strings and partition lines to be printed with the images are also set by these commands.

[0078] On settlement of the final layout, the user inputs a settlement command to the script generation device 10 (step S12). The script generation device 10 then generates the script according to rules discussed below (step S16) and outputs a resulting image file (step S18).

[0079] D. Script Description Method

[0080]FIG. 6 shows description of a script in this embodiment. The script for defining the layout may be generated according to a diversity of rules. Here shows one preferable example. For convenience of explanation, respective lines in the script have line numbers L1 through L24 shown on the left side.

[0081] As illustrated, the script of the embodiment has a header section and a page section. The header section includes lines L1 to L14 starting with the notation [HEADER] and defines the output range. In this embodiment, the header section is located in a first part of the script. The page section includes lines L15 to L24 starting with the notation [PAGE] and specifies the image layout. In this embodiment, only one head section and one page section are included in one script.

[0082] The script may also include information intrinsic to the device that interprets and executes the script, the printer 20 in this embodiment. Such information may be included in, for example, an application section and described after the notation [Application].

[0083]FIGS. 7A and 7B show description of the header section. FIG. 7A shows a rule for describing a delimiter in the header section (that is, L1 in FIG. 6). The level ‘Mandatory’ represents that the description is essential.

[0084]FIG. 7B shows a list of parameters included in the header section. The description level ‘M’ represents essential parameters and the description level ‘O’ represents optional parameters. As illustrated, these parameters describe various pieces of information including the version of an editor used for generating the script, the size of the printing sheet, and the margins.

[0085]FIGS. 8A through 8D, FIGS. 9A through 9C, FIGS. 10A through 10C, FIG. 11A, FIG. 11B, FIG. 12, FIG. 13, FIG. 14A, and FIG. 14B show description of the respective parameters included in the header section. These drawings show the details of the description of the respective parameters. All the parameters are thus not further described in the specification hereof.

[0086] As shown in FIG. 12, a parameter ‘HdphysicalPaperSize’ in the header section sets the size of the printing sheet. In this embodiment, roll papers of diverse widths are selectable options. In the case of selection of a roll paper, a parameter ‘HdRollPaperLength’ shown in FIG. 14A is set to specify the length of the roll paper. Another application for the roll paper does not set the length in advance but specifies the cut length according to each image size.

[0087] As shown by a parameter ‘HdMargins’ in FIG. 13, the margins on the printing paper may take negative values. The significance of the negative values has been explained previously with reference to FIG. 2. In this embodiment, the setting of negative values to all the four margins and the setting of negative values to the left and right margins in the case of roll paper are selectable options. The setting may permit a negative value to at least one arbitrary margin.

[0088]FIGS. 15A and 15B show description of the page section. FIG. 15 shows a rule of describing a delimiter in the page section (that is, L15 in FIG. 6). FIG. 15B shows a list of parameters included in the page section. The settings include a parameter DrawPicture for drawing photograph data, a parameter DrawLine for drawing lines, and a parameter DrawStrings for drawing letter strings. The page section may further include other parameters.

[0089] As shown in the example of the description in FIG. 6, a number of these parameters are included in the page section. Each parameter corresponds to drawing of one photograph, one line, or one letter string (hereafter generically referred to as object). Description of multiple parameters thus enables multiple objects to be drawn on a printing sheet. The sequence of the parameters in the description defines the overlapping state of the objects. In this embodiment, the object corresponding to the parameter described later is drawn over the object corresponding to the parameter described earlier. The mapping of the overlapping state to the sequence of description may be reversed. Mapping of the overlapping state to the sequence of description enables the user to readily set and change of the overlapping state of the objects.

[0090]FIG. 16 shows description of the parameter DrawPicture. This parameter includes 9 parameters. A parameter ‘FileName’ is used to specify in advance an image to be printed by the script. A parameter ‘PhotoID’ is used to control the validity of the parameter FileName. The specification by the parameter FileName is valid only when the value ‘0’ is set to the parameter PhotoID. When the parameter PhotoID is an integer of not less than 1, the specification by the parameter FileName is invalid and an image file is independently specified at the time of printing. The parameter PhotoID functions as the identifier at the time of such specification.

[0091] The parameter DrawPicture also includes parameters for specifying the two points on the upper left corner and the lower right corner of the photo frame. Specification of drifting print, where the Y coordinate on the lower right corner is unfixed, is allowable. This specification enables the size of the photo frame to be altered according to the size of the photograph, which is attached to the photo frame.

[0092] The parameter DrawPicture further includes parameters for specifying the attachment state of an image to the photo frame, that is, parameters for defining the rotation, the Fitting rules, and relative positional relationship (the Alignment rules). The restrictive settings in this example are only illustrative, but diverse settings are allowable.

[0093]FIG. 17 shows description of the parameter DrawLine. The parameter DrawLine includes parameters for specifying the starting point, the end point, the thickness, and the color of a straight line. The object is only the straight lines in this example, but may include curves and figures.

[0094]FIG. 18 shows description of the parameter DrawStrings. This embodiment adopts either of the method of presetting a letter string to be printed and the method of specifying a letter string based on information included in an image file. The former method concretely sets a letter string to be printed by the parameter Strings. The latter method specifies an image file including information to be converted to a letter string by the parameters FileName and PhotoID. The parameter Strings specify the information to be obtained and the display format of the information by macro variables.

[0095]FIG. 19 shows macro variables, which include information on the day of the week, the date, and the time of creation of the image file, the photograph number, and information on the shooting conditions like the time of exposure. These pieces of information are described in a header section, for example, in an image file in conformity with the Exif standard.

[0096] The script generation device 10 generates a script file according to the rules discussed above. The description of the script is not restricted to the above example, but a diversity of settings are applicable for the description of the script. The control program used for controlling the layout of printing with the printer 20 is not restricted to the format of the script.

[0097] E. Printing Process

[0098]FIG. 20 is a flowchart showing a printing process, which is executed by the control unit of the printer 20. In response to an instruction of image output, the control unit inputs the script discussed above (step S20). The control unit may read the script from a recording medium, such as a memory card, or extract the script from the internal memory.

[0099] The control unit subsequently creates a mapping table of the parameter PhotoID and the image file used in the script (step S21). As described previously, when the parameter includes one or multiple settings of the parameter PhotoID in the script, a resulting print includes specified image files. The process of step S21 sets the mapping for the specification. An example of the mapping table of the parameter PhotoID and the image file name is shown with the flowchart. The mapping is set by displaying the table on the control unit of the printer 20 and inputting the user's allocation of image files. The image file may be stored in advance inside the printer 20 or may be read from the memory card.

[0100] After setting the mapping table, the control unit executes drawing with the parameters included in the page section (step S22). In response to the parameter DrawPicture, the control unit fetches a corresponding image file and locates the image at a specified position. When a value of not less than 1 is set to the parameter PhotoID, the image file to be attached is set according to the mapping table created at step S21. In response to the parameter DrawLine, the control unit draws a line of the specified thickness and the specified color at the specified position. In response to the parameter DrawStrings, the control unit draws a specified letter string. In the case of application of the macro variables, the letter string is generated with information included in the specified image file.

[0101] The control unit carries out an overlapping process in the course of drawing according to the requirements (step S23). As described previously, in the script of the embodiment, the sequence of description of the parameters defines the overlapping state of objects. The objects corresponding to the parameters described later in the script are successively superimposed. The overlapping may be easily attained by overwriting a new object, whether or not an object has already been located in a certain pixel. The procedure of the embodiment, however, treats images including transparent parts. In the case of overlapping such images, the specific overlapping process is required to ensure the transparency.

[0102] Prior to explanation of the details of the overlapping process, the structure of the image file to be treated in this embodiment is discussed. A color image is generally expressed by tone values of three primary colors, red (R), green (G), and blue (B). In the JPEG format, the YCbCr color space is used in the compression process. The values in the YCbCr color system are, however, converted to tone values of the colors R, G, and B in the drawing process. In this embodiment, the image is expressed by 8-bit tone values for the respective R, G, and B colors.

[0103] The image file processed in this embodiment may include 8-bit information on the transparency as a different fourth channel, in addition to the 8-bit tone values for the three colors R, G, and B. This fourth channel is called the alpha channel. The alpha channel has 8-bit data, that is, a data value in the range of 0 to 255, with regard to each pixel. The data value equal to ‘0’ represents that the pixel is completely opaque. The data value equal to ‘255’ represents that the pixel is completely transparent. Intermediate data values represent varying degrees of transparency in multiple stages.

[0104] In the case of overlapping images with the alpha channel, the tone values of each pixel are specified according to equations given below:

R={Rp×A+Rt×(255−A)}/255;

G={Gp×A+Gt×(255−A)}/255;

B={Bp×A+Bt×(255−A)}/255;

[0105] R, G, B: tone values of a resulting composite image

[0106] Rp, Gp, Bp: tone values of an underlaid image

[0107] Rt, Gt, Bt: tone values of an overlaid image

[0108] A: data value of the alpha channel

[0109] In the case of an image without the alpha channel, for example, a general JPEG image or a bitmap image, the overlapping process may be skipped or the overlapping process may be carried out with the default data value ‘0’. The image file treating the transparency is not restricted to the file format of this embodiment, but may be a known transparent GIF. The transparent GIF is, however, not capable of varying the degree of transparency in multiple stages, unlike the file format discussed above. In the case of the transparent GIF, the procedure sets the data value ‘255’ of the alpha channel to pixels with the transparent shade specified and the data value ‘0’ to the other pixels.

[0110] The control unit repeats the drawing of the objects and the overlapping process, until processing of all the parameters described in the script has been completed (steps S22 to S24). The control unit executes actual printing (step S25) on completion of the drawing of all the objects. This printing process is equivalent to the general processing executed by a printer driver. The procedure of this embodiment executes actual printing after completion of the drawings based on all the parameters. Printing may, however, be executed in parallel to the drawing with the parameters. Even when the drawing of all the objects has not yet been completed, the modified procedure starts printing on completion of a certain set of drawing, which allows for a start of printing. The procedure then carries out the printing in parallel to the drawing.

[0111] As discussed above, the printing system of the embodiment utilizes the script and thereby enables a desired image to be readily set in a desired layout and printed. The script has the relatively simple construction and is thus easily generated and processed for output. The overlapping state of objects is defined by the sequence of description of the parameters for drawing the objects. This arrangement ensures easy definition and change of the overlapping state.

[0112] The above embodiment and its modifications are to be considered in all aspects as illustrative and not restrictive. There may be many modifications, changes, and alterations without departing from the scope or spirit of the main characteristics of the present invention. For example, the series of control processing discussed above may be actualized by a hardware configuration, instead of the software. 

What is claimed is:
 1. A computer readable recording medium in which a layout control program is recorded, said layout control program causing a computer to arbitrarily control a layout of image output from an image output device, said layout control program causing the computer to attain: an output range defining function that defines a physical output range on an output medium, in which an image is output; and a layout specifying function that specifies a layout of the image in the defined output range, said layout specifying function having multiple drawing control commands that are provided individually for a plurality of images to be output in the output range, wherein required pieces of information for outputting the image, which include information for adjusting an output position, are integrated in each of the multiple drawing control commands, and the multiple drawing control commands are arranged in a preset sequence according to an overlapping state of the plurality of images.
 2. A recording medium in accordance with claim 1, wherein each of the multiple drawing control commands includes, as parameters, image file specification information specifying an image file to be output and a validity index representing validity of the image file specification information.
 3. A recording medium in accordance with claim 1, wherein each of the multiple drawing control commands includes, as a parameter, coordinates of two points located at opposing corners of an oblong output frame, which are used to define the output frame for adjusting an output position of the image.
 4. A recording medium in accordance with claim 3, wherein each of the multiple drawing control commands includes, as a parameter, information that is used to identify a method of fitting the image to the output frame.
 5. A recording medium in accordance with claim 3, wherein each of the multiple drawing control commands includes, as a parameter, information that is used to specify a relative positional relationship between the image and the output frame in a resulting output.
 6. A recording medium in accordance with claim 1, wherein each of the multiple drawing control commands includes, as parameters, image file specification information specifying an image file to be output, coordinates of one point in an oblong output frame for adjusting an output position of the image, and information for setting dimensions of the output frame to be fit in with dimensions of the image.
 7. A recording medium in accordance with claim 1, wherein each of the multiple drawing control commands includes, as a parameter, information that is used to regulate a rotating state of the image in a resulting output.
 8. A recording medium in accordance with claim 1, wherein said layout specifying function further comprises: one or multiple letter string control commands that are arranged in a predetermined sequence and are used to set an output form of one or multiple letter strings, the letter string control command including, as parameters, image file specification information specifying an image file that includes information to be output as letters, and format specification information specifying an output format of the information included in the image file.
 9. A recording medium in accordance with claim 1, wherein said output range defining function comprises: a size specification command that is used to specify dimensions of a printing sheet as the output medium; and a margin setting command that is used to set margins on the printing sheet, where a negative value is allowable for the margin setting command.
 10. A recording medium in accordance with claim 1, wherein said output range defining function comprises: a size specification command that is used to specify dimensions of a printing sheet as the output medium; and an output range adjustment command that allows for inclusion of an external area outside the printing sheet and thereby defines the output range.
 11. A file generation device that generates a file in which a layout control program is described, said file generation device comprising: an input module that inputs a specification regarding a layout of image output in response to a user's operation; an image providing module that provides the user with a resulting image laid out according to the input specification; a settlement instruction input module that inputs a settlement instruction of the layout in response to the user's operation; and a generation module that generates the file in which said layout control program is described, based on the settlement instruction, said layout control program causing a computer to attain: an output range defining function that defines a physical output range on an output medium, in which an image is output; and a layout specifying function that specifies a layout of the image in the defined output range, said layout specifying function having multiple drawing control commands that are provided individually for a plurality of images to be output in the output range, wherein required pieces of information for outputting the image, which include information for adjusting an output position, are integrated in each of the multiple drawing control commands, and the multiple drawing control commands are arranged in a preset sequence according to an overlapping state of the plurality of images.
 12. An image output device that outputs an image in a layout according to a predetermined layout control program, said layout control program comprising: an output range defining function that defines a physical output range on an output medium, in which an image is output; and a layout specifying function that specifies a layout of the image in the defined output range, said layout specifying function having multiple drawing control commands that are provided individually for a plurality of images to be output in the output range, wherein required pieces of information for outputting the image, which include information for adjusting an output position, are integrated in each of the multiple drawing control commands, and the multiple drawing control commands are arranged in a preset sequence according to an overlapping state of the plurality of images, said image output device comprising: an input module that inputs said layout control program; an image input module that inputs image data specified by the multiple drawing control commands; and an image output module that arranges the image data in an overlapping relation corresponding to the arrangement of the multiple drawing control commands and outputs a resulting image according to the image data thus arranged.
 13. An image output device in accordance with claim 11, wherein the image data includes a transparency parameter to regulate state of transparency in multiple stages, said image output device setting tone values in an image overlap area according to a predetermined operational expression, which includes tone values of an image with the transparency parameter, tone values of another image to be combined with the image, and the transparency parameter.
 14. A computer readable recording medium in which an image output program is recorded, said image output program causing a computer to output an image in a layout according to a predetermined layout control program, said layout control program comprising: an output range defining function that defines a physical output range on an output medium, in which an image is output; and a layout specifying function that specifies a layout of the image in the defined output range, said layout specifying function having multiple drawing control commands that are provided individually for a plurality of images to be output in the output range, wherein required pieces of information for outputting the image, which include information for adjusting an output position, are integrated in each of the multiple drawing control commands, and the multiple drawing control commands are arranged in a preset sequence according to an overlapping state of the plurality of images, said image output program causing the computer to attain the functions of: inputting said layout control program; inputting image data specified by the multiple drawing control commands; and arranging the image data in an overlapping relation corresponding to the arrangement of the multiple drawing control commands and outputting a resulting image according to the image data thus arranged. 